/*
 * @Description:
 * @Author: yilingsj（315800015@qq.com）
 * @Date: 2021-07-02 23:51:16
 * @LastEditors: liu (1427179517@qq.com)
 * @LastEditTime: 2023-05-08 20:07:19
 * @FilePath: \jiekuan-app\src\main.js
 */
import Vue from 'vue'
import App from './App'
import Vuex from 'vuex'
const GLOBALCONFIG = require('@/config')
console.log('当前环境：', process.env.NODE_ENV)
uni.setStorageSync('GLOBALCONFIG', GLOBALCONFIG)
// main.js

console.log('main.js=', Date.now())
// 引入一些全局公用的方法
import {
	copyText,
	makeACall,
	showModal,
	toast,
	showLoading,
	awaitCapture,
	wxPayment,
	getPictureSrc,
	getUserProfile,
	calculate,
	variableType,
	getNowLocation,
	getAmapCode,
	getSettingUserLocation,
	jump,
	handleSaveImageToPhotosAlbum,
	getWritePhotosAlbum,
	clearForm,
} from '@/utils/publicMethod'

// 导入vuex
import store from './store'
Vue.config.productionTip = false
Vue.prototype.$store = store
Vue.prototype.$copyText = copyText // 复制文本
Vue.prototype.$makeACall = makeACall // 打电话
Vue.prototype.$showModal = showModal // 模态弹窗
Vue.prototype.$toast = toast // toast
Vue.prototype.$awaitCapture = awaitCapture // 捕获await异常
Vue.prototype.$showLoading = showLoading // loading
Vue.prototype.$wxPayment = wxPayment // 唤醒微信支付弹窗
Vue.prototype.$getPictureSrc = getPictureSrc // 获取图片地址
Vue.prototype.$getUserProfile = getUserProfile // 获取用户信息
Vue.prototype.$calculate = calculate // 四则运算
Vue.prototype.$variableType = variableType // 变量类型
Vue.prototype.$getNowLocation = getNowLocation // 获取当前位置
Vue.prototype.$getAmapCode = getAmapCode // 解析当前位置信息
Vue.prototype.$getSettingUserLocation = getSettingUserLocation // 获取定位权限
Vue.prototype.$jump = jump // 封装跳转
Vue.prototype.$handleSaveImageToPhotosAlbum = handleSaveImageToPhotosAlbum // 保存图片到系统相册
Vue.prototype.$getWritePhotosAlbum = getWritePhotosAlbum // 验证是否有保存图片到相册的权限
Vue.prototype.$clearForm = clearForm // 清空数据

import WebIM from '@/utils/hx/WebIM'
Vue.prototype.$WebIM = WebIM;

import CityObj from '@/common/city.js'
Vue.prototype.$CityObj = CityObj;

App.mpType = 'app'

// 引入uView
import uView from 'uview-ui'
Vue.use(uView)

// 平台判断
import platform from '@/utils/platform'
Vue.prototype.$platform = platform

import {
	optionalChaining
} from '@/utils/optionalChaining'
Vue.prototype.$$ = optionalChaining // 解决Vue Template模板中无法使用可选链的问题
// uView路由方法导入
// const route = require('@/uview-ui/libs/function/route.js')

import {
	router,
	RouterMount
} from './router/index.js' // 路径换成自己的

Vue.use(router)

const app = new Vue({
	store,
	...App,
})

// 自定义vue插件,方法集中管理
import vuePlugin from './vuePlugin'
// 项目自定义pulgin
Vue.use(vuePlugin)

// http拦截器，将此部分放在new Vue()和app.$mount()之间，才能App.vue中正常使用
import httpInterceptor from '@/api/http.interceptor.js'
Vue.use(httpInterceptor, app)

// http接口API集中管理引入部分
import httpApi from '@/api/http.api.js'
Vue.use(httpApi, app)

// route集中管理
// import routePath from '@/utils/route.path.js'
// Vue.use(routePath, app)

// 远程图片集中管理
// import imgs from '@/utils/imgs.js'
import qiniuImgs from '@/utils/qiniuImgs.js'
// Vue.use(imgs, app)
Vue.use(qiniuImgs, app)

// v1.3.5起 H5端 你应该去除原有的app.$mount();使用路由自带的渲染方式
// #ifdef H5
RouterMount(app, router, '#app')
// #endif

// #ifndef H5
app.$mount() // 为了兼容小程序及app端必须这样写才有效果
// #endif